This application claims the priority of Korean Patent Application No. 2002-31065, filed Jun. 3, 2002, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference.
1. Field of the Invention
The present invention relates to an apparatus for and a method of signal demodulation, and more particularly, to an apparatus for and a method of signal demodulation of a run length limit (RLL) code.
2. Description of the Related Art
Generally, in an environment where there is inter symbol interference (ISI) of data, for example, in a high density optical recording medium, considering problems caused by the ISI phenomena, the RLL code is used to modulate data.
FIGS. 3A and 3B show RLL encoding tables of a (1, 7) code. FIG. 3A shows a basic encoding table when a code having a code rate of ⅔ is used, and FIG. 3B shows a replacement table for a violation occurring when the basic encoding table of FIG. 3A is used.
The (1, 7) code is a code in which a minimum number of contiguous 0's between a 1 and a next 1 in a modulated signal is one and a maximum number of contiguous 0's is seven. The code rate of ⅔ indicates modulation of a 2-bit data word into a 3-bit codeword.
However, when the basic encoding table of FIG. 3A is used, a violation of the rule described above occurs. For example, when input data bits are 0000 according to the basic encoding table of FIG. 3A, the encoded channel bits are 101101, and thus, 1 occurs continuously. In order to solve the above problem, the replacement table shown in FIG. 3B is used so that the encoding rule can be observed considering relations of input data with previous input data and next input data. Accordingly, in order to obtain a 2-bit data word through decoding, a 9-bit codeword is decoded.
In a conventional method for decoding an RLL code, a channel detector, for example a Viterbi decoder, receives a channel signal, detects codewords and outputs the detected codewords. An RLL decoding unit decodes the codewords into data words using an RLL decoding table.
Recently, however, concepts of a soft channel detector and a soft modulator have been introduced. The output of the Viterbi decoder described above is a codeword itself, and has a value of 1 or −1. The above method is referred to as a hard demodulation and another method is referred to as soft demodulation. In the soft demodulation, a soft channel detector receives a channel signal, and outputs data indicating a probability value of a codeword. That is, the data output by the soft demodulation method has an analog value, such as 0.8 or −0.8 instead of 1 or −1, and the analog value indicates a probability that the code value is 1 or −1. A soft demodulator receives data indicating the probability value of the codeword, and outputs data indicating the probability of a data word. Then, a decoder such as a turbo decoder finally decodes the data word.
A detailed description of soft modulation may be found in an article entitled “Near-optimum Decoding of Product Codes” (R.Pyndiah, IEEE Transactions on Communications, vol. 46, No. 8, pp1003-1010). Explanations of a soft channel detector are detailed in articles entitled “A Comparison of Optimal and Sub-optimal MAP Decoding Algorithms Operating in the Log Domain” (P. Robertson, E. Villebrun, and P. Hoeher, Communications, 1995, ICC '95 Seattle, ‘Gateway to Globalization’, 1995 IEEE International Conference on, vol. 2, 1995 pp1009-1013 vol. 2) and “A Viterbi Algorithm with Soft Decision Outputs and Its Applications,” (J. Hagenauer and P. Hoeher, Proc. GLOBECOM, '89, pp1680-1786, November 1989). An explanation of turbo decoding requiring soft modulation is detailed in an article entitled “Turbo Decoding with RLL Code for Optical Storage” (E. Yamade, ISOMO1).
Referring to FIG. 4, a process in which the soft demodulator described above receives R(n), which is data indicating the probability value of a codeword, and obtains a likelihood ratio (LR), which is a value indicating the probability of each bit forming a data word, will now be explained.
Here, an example in which the code rate is ⅔ and the RLL(1, 7) code is used will be explained. FIG. 4 shows a decoding table of the RLL(1, 7) code. The first line shows data words with a 2-bit length, which are the results of decoding. The remaining lines show codewords represented in an octal notation, each codeword corresponding to a data word. For example, codeword 040 corresponds to a binary number 000 100 000.
First, in order to obtain an LR, APP(d=1) and APP(d=0) are obtained. APP(d=1) is a value indicating a probability that demodulated data is 1, and APP(d=0) is a value indicating a probability that demodulated data is 0.
APP(d=1) and APP(d=0) are obtained by equation 1:
                              APP          ⁡                      (                          d              =              1                        )                          =                              ∑                          i              =              1                                      s              ⁢                                                          ⁢              1                                ⁢                      exp            ⁡                          [                                                ∑                                      l                    =                    1                                    L                                ⁢                                                                  ⁢                                                      (                                                                  C                        l                        i                                            -                                              R                        l                                                              )                                    2                                            ]                                                          (        1        )            
In equation 1, since the code rate is ⅔, L is 9. Rl is a value indicating the probability value of a bit which is the l-th bit of 9 data bits respectively indicating probability values of 9 code bits forming one codeword that is input to the soft demodulator. Cli is a probability value of a bit which is the l-th bit of 9 code bits that form an i-th codeword among s1 codewords corresponding to a data word having 1 as the first bit. Referring to FIG. 4, since the number of codewords corresponding to a data word having 1 as the first bit is 40, s1 is 40.
                              APP          ⁡                      (                          d              =              0                        )                          =                              ∑                          h              =              1                        s2                    ⁢                      exp            ⁡                          [                                                ∑                                      l                    =                    1                                    L                                ⁢                                                                  ⁢                                                      (                                                                  C                        l                        h                                            -                                              R                        l                                                              )                                    2                                            ]                                                          (        2        )            
In equation 2, L is 9 and Rl is the same as in equation 1. Clh is a probability value of a bit which is the l-th bit of 9 code bits that form an h-th codeword among s2 codewords corresponding to a data word having 0 as the first bit. Referring to FIG. 4, since the number of codewords corresponding to a data word having 0 as the first bit is 40, s2 is 40.
After obtaining APP(d=1) and APP(d=0) according to equations 1 and 2, an LR is obtained by equation 3:LR=APP(d=1)÷APP(d=0)  (3)
Meanwhile, if computation of the exponent term is complicated in equations 1 and 2, the computation of the exponent part is not carried out and instead, APP(d=1) and APP(d=0) are obtained by equations 4 and 5 and an LR is obtained by equation 6:
                              APP          ⁡                      (                          d              =              1                        )                          =                  Max          ⁡                      [                                          (                                                      ∑                                          l                      =                      1                                        L                                    ⁢                                                                          ⁢                                                            (                                                                        C                          l                          i                                                -                                                  R                          l                                                                    )                                        2                                                  )                            ,                                                          ⁢              …              ⁢                                                          ,                              (                                                      ∑                                          l                      =                      1                                        L                                    ⁢                                                                          ⁢                                                            (                                                                        C                          l                                                      s                            ⁢                                                                                                                  ⁢                            1                                                                          -                                                  R                          l                                                                    )                                        2                                                  )                                      ]                                              (        4        )            
In equation 4, Rl and Cli are the same as in equation 1, and L and s1 are 9 and 40, respectively, as in equation 1. That is, in equation 4, a maximum value among 40 values satisfying
      ∑          l      =      1        9    ⁢          ⁢            (                        c          l          i                -                  R          l                    )        2  is determined as APP(d=1).
                              APP          ⁡                      (                          d              =              0                        )                          =                  Max          ⁡                      [                                          (                                                      ∑                                          l                      =                      1                                        L                                    ⁢                                                                          ⁢                                                            (                                                                        C                          l                          1                                                -                                                  R                          l                                                                    )                                        2                                                  )                            ,                                                          ⁢              …              ⁢                                                          ,                              (                                                      ∑                                          l                      =                      1                                        L                                    ⁢                                                                          ⁢                                                            (                                                                        C                          l                                                      s                            ⁢                                                                                                                  ⁢                            2                                                                          -                                                  R                          l                                                                    )                                        2                                                  )                                      ]                                              (        5        )            
In equation 5, Rl and Clh are the same as in equation 2, and L and s2 are 9 and 40, respectively, as in equation 2. That is, in equation 5, a maximum value among 40 values satisfying
      ∑          l      =      1        9    ⁢          ⁢            (                        C          l          h                -                  R          l                    )        2  is determined as APP(d=0).
After APP(d=1) and APP(d=0) are obtained according to equations 4 and 5, an LR is obtained by equation 6:LR=APP(d=1)−APP(d=0)  (6)
However, where an LR is obtained by the method described above, LR should be calculated using all codewords corresponding to a 1-bit data word. Accordingly, the more complicated a code is, the longer the computation time and the greater the complexity.